
//
//  WBStatusCell.swift
//  SinaWebo
//
//  Created by 亚杏 on 2017/5/23.
//  Copyright © 2017年 oms. All rights reserved.
//

import UIKit

@objc protocol WBStatusCellDelegate: NSObjectProtocol {

    @objc optional func statusCellDidSelectedURLStr(cell: WBStatusCell, urlStr: String)

}

class WBStatusCell: UITableViewCell {

    //代理属性
    weak var delegate: WBStatusCellDelegate?

    var viewModel: WBStatusViewModel? {
        didSet {
            contentLabel?.attributedText = viewModel?.statusAttrText
            retweetedLabel?.attributedText = viewModel?.retweetedAttrText
            
            nameLabel.text = viewModel?.status.user?.screen_name
            //设置会员图标,直接获取的属性
            memberIconView.image = viewModel?.memberIcon
            //认证图标
            vipIconView.image = viewModel?.vipIcon
            //用户头像
            iconView.cz_setImage(urlString: viewModel?.status.user?.profile_image_url, placeholderImage: UIImage(named: "avatar_default_big"),isAvatar: true)
            toolBar.viewModel = viewModel
            picView.viewModel = viewModel
//            picView.HeightCons.constant = viewModel?.picViewSize.height ?? 0

            //测试4张图
//            if (viewModel?.status.pic_urls?.count)! > 4 {
//                //修改数组，将末尾的数据全部删除
//                var picURL = viewModel!.status.pic_urls
//                picURL?.removeSubrange(((picURL?.startIndex)! + 4)..<(picURL?.endIndex)!)
//                picView.urls = picURL
//
//            }else{
//                picView.urls = viewModel?.status.pic_urls
//            }

            //设置配图（有转发和原创的）
//            picView.urls = viewModel?.picURLs
            //设置转发文字，可选的


            //设置来源
            sourceLabel.text = viewModel?.status.source
            print("微博来源\(String(describing: sourceLabel.text))")
            
            //设置时间 
            timeLabel.text = viewModel?.status.createdDate?.dateDescription

        }
    }

    @IBOutlet weak var iconView: UIImageView! //头像
    @IBOutlet weak var nameLabel: UILabel! // 姓名
    @IBOutlet weak var memberIconView: UIImageView! //会员图标
    @IBOutlet weak var timeLabel: UILabel! // 时间
    @IBOutlet weak var sourceLabel: UILabel! // 来源
    @IBOutlet weak var vipIconView: UIImageView! // 认证图标
    @IBOutlet weak var contentLabel: FFLabel! //文本内容
    @IBOutlet weak var toolBar: WBStatusToolBar!//底部视图
    @IBOutlet weak var picView: WBStausPicView! //配图视图
    @IBOutlet weak var retweetedLabel: FFLabel! //转发文本，有可能没有

  
    
    override func awakeFromNib() {
        super.awakeFromNib()

        //离屏渲染 - 异步绘制
        self.layer.drawsAsynchronously = true

        // 栅格化- 异步绘制后会生成一张独立的图像，cell在屏幕上滚动时，本质上滚动的是这张图片
        // cell优化，要尽量减少图层的数量
        self.layer.shouldRasterize = true
        //栅格化必须 注意指定分辨率
        self.layer.rasterizationScale = UIScreen.main.scale

        //设置文本代理 
        contentLabel.delegate = self
        retweetedLabel?.delegate = self

    }

}

extension WBStatusCell: FFLabelDelegate {

    func labelDidSelectedLinkText(label: FFLabel, text: String) {

        // 判断是否是url
        if !text.hasPrefix("http://") {
            return
        }
        //插入？ 表示如果代理 没有实现协议方法，就什么都不做，如果使用！，如果代理 没有实现协议方法，仍然强行执行，会崩溃
        delegate?.statusCellDidSelectedURLStr?(cell: self, urlStr: text)
    }
}
